package com.liang.codegenerate.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.liang.codegenerate.model.dto.tables.TableTestJoinDto;
import com.liang.codegenerate.model.dto.tables.TablesAddDto;
import com.liang.codegenerate.model.dto.tables.TablesListDto;
import com.liang.codegenerate.model.dto.tables.TablesUpdateDto;
import com.liang.codegenerate.model.entity.Tables;
import com.liang.codegenerate.model.vo.tables.TableJoinTestVo;
import com.liang.codegenerate.model.vo.tables.TablesFieldsVo;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

/**
* @author lzw
* @description 针对表【tables】的数据库操作Service
* @createDate 2024-01-20 21:08:33
*/
public interface TablesService extends IService<Tables> {

    /**
     * 创建表
     * @param tablesAddDto
     * @param request
     * @return
     */
    boolean addTable(TablesAddDto tablesAddDto, HttpServletRequest request);

    /**
     * 删除表
     *
     * @param id
     * @return
     */
    int deleteTable(Long id);

    /**
     * 修改表
     *
     * @param tablesUpdateDto
     * @param
     * @return
     */
    boolean updateTable(TablesUpdateDto tablesUpdateDto);

    /**
     * 查询表
     * @param tablesListDto
     * @return
     */
    List<Tables> listTable(TablesListDto tablesListDto, HttpServletRequest request);


    /**
     * 测试连接
     * @param tableTestJoinDto
     * @return
     */
    TableJoinTestVo testJoin(TableTestJoinDto tableTestJoinDto);

    /**
     * 根据id查询
     * @return
     */
    Tables listTableById(Long id);

    /**
     * 查询表格信息与字段信息
     * @param id
     * @return
     */
    TablesFieldsVo getFields(Long id);
}
